﻿using System.Collections.Generic;

namespace mepostras.BO.Util
{
    public class BoConfig
    {
        //public static string RootUrl { get { return ConfigurationManager.AppSettings.Get("RootUrl"); } }
        public static string ServerPath = string.Empty;

        /// <summary>
        /// Ngôn ngữ
        /// </summary>
        public class Language
        {
            /// <summary>
            /// Tiếng Việt: vi-vn
            /// </summary>
            public const string Vietnamese = "vi-VN";

            /// <summary>
            /// Tiếng Anh: en-us
            /// </summary>
            public const string English = "en-US";

            public string Text { get; set; }
            public string Value { get; set; }

            public static List<Language> GetList()
            {
                return new List<Language>
                           {
                               new Language
                                   {
                                       Value = English,
                                       Text = "English"
                                   },
                               new Language
                                   {
                                       Value = Vietnamese,
                                       Text = "Vietnamese"
                                   }
                           };
            }
        }

        /// <summary>
        /// Loại menu: Link, Single, List
        /// </summary>
        public class MenuType
        {
            /// <summary>
            /// Menu là 1 bài viết đơn
            /// </summary>
            public const string Single = "Single";

            /// <summary>
            /// Menu chứa danh sách bài viết
            /// </summary>
            public const string List = "List";

            /// <summary>
            /// Menu là một liên kết
            /// </summary>
            public const string Link = "Link";

            public string Text { get; set; }
            public string Value { get; set; }

            public static List<MenuType> GetList()
            {
                return new List<MenuType>
                           {
                               new MenuType
                                   {
                                       Value = Single,
                                       Text = "Single"
                                   },
                               new MenuType
                                   {
                                       Value = List,
                                       Text = "List"
                                   },
                               new MenuType
                                   {
                                       Value = Link,
                                       Text = "Link"
                                   }
                           };
            }
        }

        /// <summary>
        /// Loại contact: Suggest, Contact
        /// </summary>
        public class ContactType
        {
            /// <summary>
            /// Góp ý, yêu cầu
            /// </summary>
            public const string Suggest = "Suggest";

            /// <summary>
            /// Khách hàng liên hệ
            /// </summary>
            public const string Contact = "Suggest";

            /// <summary>
            /// Gửi hồ sơ qua email
            /// </summary>
            public const string Email = "Email";

            public string Text { get; set; }
            public string Value { get; set; }
            public static List<ContactType> GetList()
            {
                return new List<ContactType>
                           {
                               new ContactType
                                   {
                                       Value = Suggest,
                                       Text = "Suggest"
                                   },
                               new ContactType
                                   {
                                       Value = Suggest,
                                       Text = "Suggest"
                                   },
                               new ContactType
                                   {
                                       Value = Email,
                                       Text = "Email"
                                   }
                           };
            }
        }

        /// <summary>
        /// Loại file
        /// </summary>
        public class FileType
        {
            /// <summary>
            /// Loại file là hình ảnh
            /// </summary>
            public const string Image = "Image";

            /// <summary>
            /// Loại file khác
            /// </summary>
            public const string Other = "Other";
        }

        /// <summary>
        /// Loại menu: Top, Main...
        /// </summary>
        public class MenuPosition
        {
            /// <summary>
            /// Menu nằm trên cùng
            /// </summary>
            public const string Top = "Top";

            /// <summary>
            /// Menu chính
            /// </summary>
            public const string Main = "Main";
        }

        /// <summary>
        /// Hệ thống Format
        /// </summary>
        public class Format
        {
            /// <summary>
            /// Format để render ra LocalId.
            /// Truyền vào 2 biến: [0] Prefix, [1] Id
            /// </summary>
            public const string LocalId = "{0}{1:00000}";
        }

        /// <summary>
        /// Hệ thống Prefix
        /// </summary>
        public class Prefix
        {
            /// <summary>
            /// Prefix cho Message Code dạng Message: MSG
            /// </summary>
            public const string Message = "MSG";

            /// <summary>
            /// Prefix cho Message Code dạng General: GNR
            /// </summary>
            public const string General = "GNR";

            /// <summary>
            /// Prefix cho User: USR
            /// </summary>
            public const string UserAccount = "USR";

            /// <summary>
            /// Prefix cho User: UST
            /// </summary>
            public const string UserType = "UST";

            /// <summary>
            /// Prefix cho Hospital: HOS
            /// </summary>
            public const string Hospital = "HOS";

            /// <summary>
            /// Prefix cho Article: ART
            /// </summary>
            public const string Article = "ART";

            /// <summary>
            /// Prefix cho Appointment: APT
            /// </summary>
            public const string Appointment = "APT";

            /// <summary>
            /// Prefix cho Contact: CON
            /// </summary>
            public const string Contact = "CON";

            /// <summary>
            /// Prefix cho FAQ: FAQ
            /// </summary>
            public const string Faq = "FAQ";

            /// <summary>
            /// Prefix cho Menu: MNU
            /// </summary>
            public const string Menu = "MNU";
        }

        /// <summary>
        /// Hệ thống mã Message để lấy nội dung Message
        /// </summary>
        public class MessageCode
        {
            /// <summary>
            /// Hệ thống mã Message cho General.
            /// Render: [MSG]_[GNR]_[Number: 3 số]
            /// </summary>
            public class General
            {
                /// <summary>
                /// Server bị lỗi: 001
                /// </summary>
                public const string ServerError = Prefix.Message + "_" + Prefix.General + "_" + "001";

                /// <summary>
                /// Update thành công: 002
                /// </summary>
                public const string UpdateSuccess = Prefix.Message + "_" + Prefix.General + "_" + "002";

                /// <summary>
                /// Update thất bại: 003
                /// </summary>
                public const string UpdateFail = Prefix.Message + "_" + Prefix.General + "_" + "003";

                /// <summary>
                /// Insert thất bại: 004
                /// </summary>
                public const string InsertSuccess = Prefix.Message + "_" + Prefix.General + "_" + "004";

                /// <summary>
                /// Insert thất bại: 005
                /// </summary>
                public const string InsertFail = Prefix.Message + "_" + Prefix.General + "_" + "005";

                /// <summary>
                /// Title không được rỗng: 006
                /// </summary>
                public const string RequireTitle = Prefix.Message + "_" + Prefix.General + "_" + "006";

                /// <summary>
                /// Published Date không được rỗng: 007
                /// </summary>
                public const string RequirePublishedDate = Prefix.Message + "_" + Prefix.General + "_" + "007";

                /// <summary>
                /// Index ko phải là số: 008
                /// </summary>
                public const string RequireIndexNumber = Prefix.Message + "_" + Prefix.General + "_" + "008";

                /// <summary>
                /// Delete thành công: 009
                /// </summary>
                public const string DeleteSuccess = Prefix.Message + "_" + Prefix.General + "_" + "009";

                /// <summary>
                /// Delete thất bại: 010
                /// </summary>
                public const string DeleteFail = Prefix.Message + "_" + Prefix.General + "_" + "010";

                /// <summary>
                /// Không tìm thấy item: 011
                /// </summary>
                public const string NotFoundItem = Prefix.Message + "_" + Prefix.General + "_" + "011";

                /// <summary>
                /// Username ko được rỗng: 012
                /// </summary>
                public const string RequireUsername = Prefix.Message + "_" + Prefix.General + "_" + "012";

                /// <summary>
                /// Password ko được rỗng: 013
                /// </summary>
                public const string RequirePassword = Prefix.Message + "_" + Prefix.General + "_" + "013";

                /// <summary>
                /// Password ko khớp: 014
                /// </summary>
                public const string PasswordNotMatch = Prefix.Message + "_" + Prefix.General + "_" + "014";

                /// <summary>
                /// FirstName ko được rỗng: 015
                /// </summary>
                public const string RequireFirstName = Prefix.Message + "_" + Prefix.General + "_" + "015";

                /// <summary>
                /// LastName ko được rỗng: 016
                /// </summary>
                public const string RequireLastName = Prefix.Message + "_" + Prefix.General + "_" + "016";

                /// <summary>
                /// FullName ko được rỗng: 017
                /// </summary>
                public const string RequireFullName = Prefix.Message + "_" + Prefix.General + "_" + "017";

                /// <summary>
                /// FullName ko được rỗng: 018
                /// </summary>
                public const string RequireEmail = Prefix.Message + "_" + Prefix.General + "_" + "018";

                /// <summary>
                /// FullName ko được rỗng: 019
                /// </summary>
                public const string RequireContent = Prefix.Message + "_" + Prefix.General + "_" + "019";
            }

            /// <summary>
            /// Hệ thống mã Message cho UserAccount. 
            /// Render: [MSG]_[USR]_[Number: 3 số]
            /// </summary>
            public class UserAccount
            {
            }

            /// <summary>
            /// Hệ thống mã Message cho Menu. 
            /// Render: [MSG]_[MNU]_[Number: 3 số]
            /// </summary>
            public class Menu
            {
                /// <summary>
                /// Link của menu không được rỗng: 001
                /// </summary>
                public const string RequireLink = Prefix.Message + "_" + Prefix.Menu + "_" + "001";
            }

            /// <summary>
            /// Hệ thống mã Message cho Article. 
            /// Render: [MSG]_[ART]_[Number: 3 số]
            /// </summary>
            public class Article
            {
            }

            /// <summary>
            /// Hệ thống mã Message cho Appointment. 
            /// Render: [MSG]_[ART]_[Number: 3 số]
            /// </summary>
            public class Appointment
            {
                /// <summary>
                /// Đặt lịch hẹn thành công: 001
                /// </summary>
                public const string BookAppointmentSuccess = Prefix.Message + "_" + Prefix.Appointment + "_" + "001";

                /// <summary>
                /// Đặt lịch hẹn thất bại: 002
                /// </summary>
                public const string BookAppointmentFail = Prefix.Message + "_" + Prefix.Appointment + "_" + "002";

                /// <summary>
                /// Appointment time ko được rỗng: 003
                /// </summary>
                public const string RequireAppointmentTime = Prefix.Message + "_" + Prefix.Appointment + "_" + "003";

                /// <summary>
                /// Appointment time có thời gian nhỏ hơn thời điểm hiện tại: 004
                /// </summary>
                public const string InvalidAppointmentTime = Prefix.Message + "_" + Prefix.Appointment + "_" + "004";
            }

            /// <summary>
            /// Hệ thống mã Message cho Appointment. 
            /// Render: [MSG]_[CON]_[Number: 3 số]
            /// </summary>
            public class Contact
            {
                /// <summary>
                /// Gửi liên hệ thành công: 001
                /// </summary>
                public const string ContactSuccess = Prefix.Message + "_" + Prefix.Contact + "_" + "001";

                /// <summary>
                /// Gửi liên hệ thất bại: 002
                /// </summary>
                public const string ContactFail = Prefix.Message + "_" + Prefix.Contact + "_" + "002";

                /// <summary>
                /// Chiều dài description vượt quá giới hạn: 003
                /// </summary>
                public const string DescriptionOutOfLength = Prefix.Message + "_" + Prefix.Contact + "_" + "003";
            }

            /// <summary>
            /// Hệ thống mã Message cho Appointment. 
            /// Render: [MSG]_[FAQ]_[Number: 3 số]
            /// </summary>
            public class Faq
            {
                /// <summary>
                /// Gửi câu hỏi thành công: 001
                /// </summary>
                public const string FaqSuccess = Prefix.Message + "_" + Prefix.Faq + "_" + "001";

                /// <summary>
                /// Gửi liên hệ thất bại: 002
                /// </summary>
                public const string FaqFail = Prefix.Message + "_" + Prefix.Faq + "_" + "002";

                /// <summary>
                /// Chiều dài câu hỏi vượt quá giới hạn: 003
                /// </summary>
                public const string QuestionOutOfLength = Prefix.Message + "_" + Prefix.Faq + "_" + "003";

                /// <summary>
                /// Câu hỏi ko được rỗng: 004
                /// </summary>
                public const string RequireQuestion = Prefix.Message + "_" + Prefix.Faq + "_" + "004";
            }

            /// <summary>
            /// Hệ thống mã Message cho Hospital. 
            /// Render: [MSG]_[HOS]_[Number: 3 số]
            /// </summary>
            public class Hospital
            {
                /// <summary>
                /// Vượt quá số ảnh: 001
                /// </summary>
                public const string ServerError = Prefix.Message + "_" + Prefix.Hospital + "_" + "001";
            }

            /// <summary>
            /// Hệ thống mã Message cho UserType. 
            /// Render: [MSG]_[UST]_[Number: 3 số]
            /// </summary>
            public class UserType
            {
                public const string HadUser = Prefix.Message + "_" + Prefix.UserType + "_" + "001";
            }
        }
    }
}
